Responsive Layout তৈরি করা

Web Development - এক্সটিজেএস (ExtJS) - ExtJS Layout Management |

ExtJS তে Responsive Layout তৈরি করা একটি গুরুত্বপূর্ণ প্রক্রিয়া, যেখানে অ্যাপ্লিকেশনের ইউজার ইন্টারফেস (UI) বিভিন্ন ডিভাইস এবং স্ক্রীন সাইজ অনুযায়ী অভিযোজিত (adjust) হয়। Responsive Layout এর মাধ্যমে একসাথে ডেস্কটপ এবং মোবাইল ডিভাইসে অ্যাপ্লিকেশন চালানো সহজ হয়।

ExtJS এ রেসপন্সিভ ডিজাইন তৈরি করার জন্য বিভিন্ন ধরনের লেআউট, responsiveConfig, এবং media query ব্যবহার করা হয়। এই ফিচারটি আপনার অ্যাপ্লিকেশনকে প্রয়োজনে স্বয়ংক্রিয়ভাবে স্কেল এবং অ্যাডাপ্ট করে।


১. ExtJS তে Responsive Layout তৈরির জন্য ব্যবহৃত কনফিগারেশন

responsiveConfig

responsiveConfig হল ExtJS এর একটি বৈশিষ্ট্য যা বিভিন্ন ডিভাইসের জন্য ভিউ উপাদানগুলি (যেমন: প্যানেল, গ্রিড, বা ফর্ম) কনফিগার করার জন্য ব্যবহৃত হয়। এটি স্ক্রীন সাইজ এবং অন্যান্য মিডিয়া কন্ডিশন অনুযায়ী প্রপার্টি চেঞ্জ করতে সক্ষম।

media query

মিডিয়া কুয়েরি CSS এর মতো ব্যবহার করা হয়, যার মাধ্যমে স্ক্রীন সাইজ অনুযায়ী বিভিন্ন সিএসএস স্টাইল অ্যাপ্লাই করা হয়।


২. Responsive Layout উদাহরণ

ধরা যাক, আপনি একটি প্যানেল তৈরি করতে চান যা ডেস্কটপে একরকম এবং মোবাইলে আরেকরকম দেখাবে। এখানে আমরা responsiveConfig ব্যবহার করব।

উদাহরণ: Responsive Panel তৈরি করা

Ext.define('MyApp.view.ResponsivePanel', {
    extend: 'Ext.panel.Panel',
    xtype: 'responsivepanel',
    title: 'Responsive Panel',
    width: 400,
    height: 300,
    html: '<p>Welcome to the responsive layout!</p>',

    responsiveConfig: {
        'width < 500': {  // যদি স্ক্রীনের প্রস্থ 500px এর কম হয়
            width: '100%',
            height: 'auto',
            html: '<p>Mobile Layout - Adjusted Width and Height</p>'
        },
        'width >= 500': {  // যদি স্ক্রীনের প্রস্থ 500px এর সমান বা বেশি হয়
            width: 400,
            height: 300,
            html: '<p>Desktop Layout - Fixed Width and Height</p>'
        }
    },

    initComponent: function() {
        this.callParent();
    }
});

এখানে:

  • responsiveConfig ব্যবহার করা হয়েছে। যখন স্ক্রীনের প্রস্থ 500px এর নিচে যাবে, তখন প্যানেলটি 100% প্রস্থ নিয়ে মোবাইল ফর্ম্যাটে কনভার্ট হবে।
  • যদি স্ক্রীনের প্রস্থ 500px বা তার বেশি হয়, তখন এটি 400px প্রস্থ এবং 300px উচ্চতা সহ ডেস্কটপ লেআউটে রেন্ডার হবে।

৩. Flex Layout এবং Column Layout ব্যবহার

এছাড়াও Flex Layout এবং Column Layout ব্যবহার করে আপনি বিভিন্ন কলাম এবং রেসপন্সিভ ডিজাইন তৈরি করতে পারেন।

উদাহরণ: Flex Layout এর মাধ্যমে Responsive Panel

Ext.define('MyApp.view.FlexLayoutPanel', {
    extend: 'Ext.panel.Panel',
    xtype: 'flexlayoutpanel',
    title: 'Flex Layout Panel',
    layout: 'hbox',  // flexbox layout
    items: [
        {
            xtype: 'panel',
            flex: 1,  // Flexibly adjusts the width
            html: '<p>Left Panel</p>',
            style: { border: '1px solid black' }
        },
        {
            xtype: 'panel',
            width: 200,  // Fixed width for right panel
            html: '<p>Right Panel</p>',
            style: { border: '1px solid black' }
        }
    ]
});
  • layout: 'hbox': এটি ফ্লেক্সবক্স লেআউট ব্যবহার করছে, যা উপাদানগুলোকে এক সারিতে রাখে এবং সেগুলোর আকার স্ক্রীনের প্রস্থ অনুসারে কাস্টমাইজ করে।
  • flex: ফ্লেক্সবক্সের মাধ্যমে উপাদানগুলি স্বয়ংক্রিয়ভাবে তাদের প্রস্থ বৃদ্ধি বা সংকুচিত করতে পারে।

৪. Responsive Design এর জন্য Media Query ব্যবহার

ExtJS তে CSS স্টাইলিংয়ের মাধ্যমে মিডিয়া কুয়েরি ব্যবহার করতে পারেন। এর মাধ্যমে বিভিন্ন স্ক্রীন সাইজ অনুযায়ী কাস্টম স্টাইল অ্যাপ্লাই করা হয়।

উদাহরণ: CSS Media Query

@media (max-width: 768px) {
    .x-panel {
        background-color: #f0f0f0;  /* Mobile-specific background color */
    }
}

@media (min-width: 769px) {
    .x-panel {
        background-color: #ffffff;  /* Desktop-specific background color */
    }
}

এখানে, মিডিয়া কুয়েরি ব্যবহার করে আমরা মোবাইল এবং ডেস্কটপের জন্য আলাদা ব্যাকগ্রাউন্ড রঙ নির্ধারণ করেছি।


৫. Ext.container.Viewport এবং layout: 'fit'

ডেস্কটপ এবং মোবাইল অ্যাপ্লিকেশন ডিজাইন করতে Ext.container.Viewport এবং layout: 'fit' ব্যবহার করা হয়। এই লেআউটটি স্বয়ংক্রিয়ভাবে কনটেন্টকে স্ক্রীনের পুরো প্রস্থ এবং উচ্চতায় ফিট করে।

উদাহরণ: Viewport Layout

Ext.define('MyApp.view.ViewportPanel', {
    extend: 'Ext.container.Viewport',
    layout: 'fit',
    items: [
        {
            xtype: 'panel',
            title: 'Responsive Viewport Panel',
            html: '<p>This panel fits the entire screen!</p>'
        }
    ]
});
  • layout: 'fit': এটি কনটেন্টকে পুরো স্ক্রীনে ফিট করে এবং খুবই কার্যকর মোবাইল ও ডেস্কটপের জন্য।

৬. রেসপন্সিভ ডিজাইনে Toolbars এবং Menus

ExtJS তে রেসপন্সিভ টুলবার এবং মেনু তৈরি করা সম্ভব, যা স্ক্রীন সাইজ অনুযায়ী টুলবারের আইটেমগুলি সঠিকভাবে ডিসপ্লে করবে। ছোট স্ক্রীনে মেনু বা টুলবার এলিমেন্টগুলোটি সঙ্কুচিত হতে পারে।

উদাহরণ: Responsive Toolbar

Ext.create('Ext.toolbar.Toolbar', {
    renderTo: Ext.getBody(),
    items: [
        { text: 'Home' },
        { text: 'About' },
        { text: 'Contact' },
        {
            xtype: 'tbfill'
        },
        {
            xtype: 'button',
            text: 'Settings',
            menu: {
                items: [
                    { text: 'Profile' },
                    { text: 'Logout' }
                ]
            }
        }
    ]
});

এখানে tbfill ব্যবহার করে টুলবার আইটেমগুলোর মধ্যে ফাঁকা স্থান সৃষ্টি করা হয়েছে।


সারাংশ

  • Responsive Layout তৈরি করার জন্য responsiveConfig এবং media query ব্যবহার করা হয়। এর মাধ্যমে অ্যাপ্লিকেশন UI বিভিন্ন ডিভাইসের স্ক্রীন সাইজ অনুযায়ী স্বয়ংক্রিয়ভাবে অভিযোজিত হয়।
  • layout: 'fit', hbox বা vbox লেআউট ব্যবহার করে রেসপন্সিভ প্যানেল এবং উপাদান তৈরি করা যায়।
  • Ext.container.Viewport লেআউট ব্যবহার করে স্ক্রীনের পুরো প্রস্থে কনটেন্ট ফিট করানো সম্ভব।

এভাবে, ExtJS তে রেসপন্সিভ ডিজাইন তৈরি করলে আপনার অ্যাপ্লিকেশন বিভিন্ন স্ক্রীন সাইজের ডিভাইসে কার্যকরীভাবে চলবে।

Content added By
Promotion